package com.platform.common.core.domain.export;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.platform.common.core.annotation.Excel;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author mymac
 * @Date 2024/7/12 9:11 AM
 * @Version 1.0
 */
@Data
public class DepartFeeCheckQueryExportDTO {

    @Excel(name = "账单流水号")
    private String serialNo;

    @Excel(name = "业务单号")
    private String businessNo;

    @Excel(name = "子业务号")
    private String subBusinessNo;

    @Excel(name = "业务类型",readConverterExp = "DOM_ARRIVAL_FREIGHT=国内进港货运,DOM_DEPARTURE_FREIGHT=国内出港货运,INT_ARRIVAL_FREIGHT=国际进港货运,INT_DEPARTURE_FREIGHT=国际进港货运,PARKING=停车业务,OTHER=其他业务")
    private String businessType;

    @Excel(name = "账单类型",readConverterExp = "INCOME=收入,EXPENDITURE=支出")
    private String checkType;

    @Excel(name = "收费类别名称")
    private String categoryName;

    @Excel(name = "规则名称")
    private String ruleName;

    @Excel(name = "计费数量")
    private BigDecimal counts;

    @Excel(name = "费率")
    private BigDecimal rate;

    @Excel(name = "收费项")
    private String checkItem;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "账单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkTime;

    @Excel(name = "账单状态",readConverterExp = "UNPAID=未支付,PAID=已支付,PAYMENT_IN_PROGRESS=支付中,REFUND_IN_PROGRESS=退款中,FULLY_REFUNDED=已全部退款,PARTIAL_REFUND=部分退款,")
    private String checkStatus;

    @Excel(name = "实收金额")
    private BigDecimal actualAmount;

    @Excel(name = "折扣金额")
    private BigDecimal discount;

    @Excel(name = "原价金额")
    private BigDecimal amount;

    @Excel(name = "应收金额")
    private BigDecimal receivableAmount;

    @Excel(name = "剩余可退款金额")
    private BigDecimal remainRefundableAmount;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paidTime;

    @Excel(name = "结算方式",readConverterExp = "NOW_PAID=现结,DAY_PAID=日结,MONTH_PAID=月结")
    private String settleWay;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "应收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date receivableTime;

    @Excel(name = "收费人名称")
    private String checkUserName;

    @Excel(name = "付款人名称")
    private String payeeName;

    @Excel(name = "账单所属人名称")
    private String ownerName;

    @Excel(name = "发票类别")
    private String invoiceCategory;

    @Excel(name = "开票状态",readConverterExp = "NOT_INVOICED=未开票,INVOICING=开票中,INVOICED=开票完成,INVOICED_FAIL=开票失败,INVOICE_RED_DURING=冲红中,INVOICE_RED_SUCCESS=冲红成功,INVOICE_RED_FAIL=冲红失败")
    private String invoiceStatus;

    @Excel(name = "描述")
    private String description;
}
